// =================================== 验证规则的公共处理方法
const VALIDATOR_FUNC = (value, callback, regData, noRequired) => {
  if (value === '' && !noRequired) {
    return callback(new Error('该项为必输项,请输入'));
  }
  const regExp = regData.reg.test(value);
  if (!regExp) {
    if (value === '' && noRequired) {
      return callback();
    } else {
      return callback(new Error(regData.msg));
    }
  } else {
    callback();
  }
};
const reg1_99 = { reg: /^[1-9][0-9]?$/, msg: '必须为1-99正整数' }; // 1-99纯数字
const reg1_999 = { reg: /^(\+?[1-9]\d{0,2}|\+?999)$/, msg: '必须为1-999正整数' }; // 1-999纯数字
const reg3rd = { reg: /^\d{3}$/, msg: '只能输入三位数的数字编号' }; // 必须为三位数字
const reg1_100 = { reg: /^([1-9][0-9]{0,1}|100)$/, msg: '必须为1-100的正整数' }; // 必须为正整数
const reg1_9999 = { reg: /^(\+?[1-9]\d{0,3}|\+?9999)$/, msg: '必须为1-9999正整数' }; // 1-9999纯数字
const regInt = { reg: /^(\+?[1-9]\d{0,999}|\+)$/, msg: '必须为的正整数' }; // 必须为正整数
const regInt0_infinity = { reg: /^\+?(0|[1-9]\d{0,99}|\+)$/, msg: '必须为大于或等于0的整数' }; // 必须为0或者大于0的整数
const reg1_infinity = { reg: /^(\+?[1-9]\d{0,99}|\+)$/, msg: '必须为大于或等于1的整数' }; // 必须为大于1的正整数
const reg600_infinity = { reg: /^(([6-9]\d{2})|([1-9]\d{3,}))(\.\d*)?$/, msg: '必须为大于或等于600的整数' }; // 必须为大于600的正整数
const reg40_w = { reg: /^(\w{0,40}|\+)$/, msg: '必须为40位数字,字母,下划线' }; // 只能输入40位字母、数字、下划线

export {
  VALIDATOR_FUNC,
  reg1_99,
  reg1_100,
  reg1_999,
  reg1_9999,
  reg3rd,
  regInt,
  regInt0_infinity,
  reg1_infinity,
  reg600_infinity,
  reg40_w
};
